/*
 * 8puzzle.h
 *
 *  Created on: 7-May-09
 *      Author: marduke
 */

using namespace std;
#include <c++/4.3/iostream>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <math.h>
#include "Estado.h"
#include <list>
#include <cstdlib>
#include <iomanip>


#define coordenada struct coordenadas

struct coordenadas {
	int x;
	int y;
};

extern
coordenada getCero(unsigned long);

extern
int posicionLong(coordenada);

extern
state* hacerMovimiento(state *,int, int);

extern
list<state *> estadosSiguientes(state *);

extern
unsigned long bfs(state *);

extern
char *conseguirMov(unsigned long, unsigned long);

extern
bool estaVisitado(list<unsigned long>, unsigned long);
